import { INTEGER_PG } from "~/db.pg";

import { TonTplGroupGateway, TonTplGateway } from "./dto.tpl";
import { TonTpl, TonTplGroup } from "./schema.tpl";
import { PageData, PageDto } from "~/rest";

export const TonTplGroupRpcGetTplGroupPath = `${TonTplGroupGateway.path}/getTplGroup`;
export type getTplGroupRpcDto = { ids: INTEGER_PG[] };

export const TonTplRpcGetTplPath = `${TonTplGateway.path}/getTpl`;
export type getTplRpcDto = { ids: INTEGER_PG[] };

export const TonTplRpcGetTplPagePath = `${TonTplGateway.path}/getTplPage`;
export type getTplPageRpcDto = PageDto<TonTpl> & { groupId: TonTplGroup["id"] };
export interface TonTplComRpcInterface<T> {
  getTplGroup(dto: T & getTplGroupRpcDto): Promise<{ entityLs: TonTplGroup[] }>;
  getTpl(dto: T & getTplRpcDto): Promise<{ entityLs: TonTpl[] }>;

  /** 提供给中间层进行组装 */
  getTplPage(dto: T & getTplPageRpcDto): Promise<PageData<TonTpl>>;
}
